#pragma once


#include "space\result.h"
#include "space\i_engine.h"
#include <memory>

namespace space {

	class i_manager {
		virtual result on_post_update(i_engine_ptr, float) = 0;
		virtual result on_pre_update(i_engine_ptr, float) = 0;
		virtual result on_update(i_engine_ptr, float) = 0;

		virtual result initialize(i_engine_ptr) = 0;
		virtual result release(i_engine_ptr) = 0;
	};
	typedef shared_ptr<i_manager> i_manager_ptr;
};